# 作业：
#####################################################################################
# 1、如何既打印出内容，又显示下标的编号；
str1 = 'abcabc'
for i in str1:
    print(i, end='')
    str2 = str1.find(i)
    print(' 下标编号为：%d' % str2)
# 疑问：字符串中有相同的字符，每一个相同的字符都是返回第一个字符的下标，怎么解决？

'''2、使用while，完成以下图形的输出:
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
'''
a = 1  # a控制行数
while a <= 5:
    b = 1  # b控制列数
    while b <= a:
        print('* ', end='')
        b += 1
    print()
    a += 1
while a <= 9:
    b = 1
    while 0 < b <= (10 - a):
        print('* ', end='')
        b += 1
    print()
    a += 1

'''3、break和continue的区别：'''
# break表示跳出最近的一个循环，继续执行其它代码；
# continue表示跳出本次循环，重新执行这一次循环；

'''4、按要求处理字符串： 
现有字符串： str1 = '1234567890'，根据题目要求，将截取后的新字符串赋值给str2'''

'''1.	截取字符串的第一位到第三位的字符'''
str1 = '1234567890'
str2 = str1[:3]
print(str2)

'''2.	截取字符串最后三位的字符'''
str1 = '1234567890'
str2 = str1[:-4:-1]
print(str2)

'''3.	截取字符串的全部字符'''
str1 = '1234567890'
str2 = str1[:]
print(str2)

'''4.	截取字符串的第七个字符到结尾'''
str1 = '1234567890'
str2 = str1[6:]
print(str2)

'''5.	截取字符串的第一位到倒数第三位之间的字符'''
str1 = '1234567890'
str2 = str1[1:-3]
print(str2)

'''6.	截取字符串的第三个字符'''
str1 = '1234567890'
str2 = str1[2]
print(str2)

'''7.	截取字符串的倒数第一个字符'''
str1 = '1234567890'
str2 = str1[-1]
print(str2)

'''8.	截取与原字符串顺序相反的字符串'''
str1 = '1234567890'
str2 = str1[::-1]
print(str2)

'''9.	截取字符串倒数第三位与倒数第一位之间的字符'''
str1 = '1234567890'
str2 = str1[-2:-1]
print(str2)

'''10.	截取字符串的第一位字符到最后一位字符之间的字符，每隔一个字符截取一次'''
str1 = '1234567890'
str2 = str1[1:-1:2]
print(str2)





'''笔记：
#############################################################################################3
1、空字符串的几种写法
a = ''
a = ""
a = """"""
a = str()

2、len方法：确定字符串中元素或字符的个数
name = 'lebo'
print(len())

3、下标：字符串内每个字母的位置，从0开始数
3.1
根据下标得出字符：
例如：
name = 'abcdef'
a的下标是name[0]  # 从左往右第1个字母
f的下标是name[-1]  # 从右往左数第1个字母
print(name[3])  # 打印d

3.2
根据字符得出下标：
# 作业

4、切片的语法：[起始: 结束:步长]
# 从起始地方开始取第一个字符，每隔多少步长个字符，再取一个字符；
# 起始是闭区间，结束是开区间，
# 起始如果是0，可以省略，例如my_str[0:3:1] —> my_str[:3:1]
# 如果步长是1，也可以省略，例如my_str[0:3:1] —> my_str[:3:1]—> my_str[:3]
# [:-2]#是从0开始取到倒数第3个数（-2是开区间，所以不取倒数第二个）
# [:-2:-1]# 步长是负数，意思是从后往前取，例如name='123456',[:-3:-1]，意思是从6开始数，到[-3]的位置
# 字符串是不可变的：取出来的字符串不是原本的字符串了，是一个新的字符串

5、（必须掌握）在字符串里面查找：
5.1
print(my_str.find('i'))  # 返回字符串中i的下标，如果不存在就返回-1
print(my_str.index('i'))  # 这个和find不同的是，如果不存在就会报错
print(my_str.rindex('i'))
print(my_str.rfind('i'))  # 这两个是后往前查询，减少查询时间
print(my_str.find('i', 2, 5))  # 2,5是下标，从2~5这个切片里面i的下标
print(my_str.count('i'))  #

6、必须掌握）替换文档内容：
my_str = '1234567'
print(my_str.replace('123', '666'))  # 把123替换成666
print(my_str.split(' '))  # 以某个字符作为分隔符（这个例子是以空格分隔的，分割后，这个空格就没有了），分成一个个字符串，返回一个列表

7、（稍微了解就行）：转换大小写、以什么字符开头、什么字符结尾的
a = 'fgh ddf'
ret = a.capitalize()  # 第一個字符变成大写
ret = a.title()  # 每个单词都大写
ret = a.startswith('a')  # 检索以a开头
ret = a.endswith('a')  # 检索以a 结尾
ret = a.upper()  # 所有单词转换成大写
ret = a.lower()  # 所有单词转换成小写
ret = a.islower()  # 判断所有的单词是否都是小写
ret = a.isupper()  # 判断所有的单词是否都是大写
# 如果方法是以is开头的，都是判断，都是返回bool型，例如ret=a.isupper()
ret = a.just(6, 'x')  # 字符串不够6位就在后面填x填够6位
ret = a.rjust(6, 'x')  # 字符串不够6位就在前面填x填够6位
ret = a.center(6, 'x')  # 字符串放中间，两边填x，有多的先填左边
ret = a.strip()  # 去掉头尾的空格
ret = a.lstrip()  # 去掉左边的空格
ret = a.rstrip()  # 去掉右边的空格
'''
